<?php
require_once 'DAO/DAOEventoRepublica.php';

require_once 'DAO/DAOConfirmadosEventoRepublica.php';
require_once 'DAO/DAOEstatisticaEventoRepublica.php';
require_once 'DAO/DAOLoteEventoRepublica.php';
require_once 'DAO/DAOComentarioEventoRepublica.php';

class EventoRepublicaController {

    private $evento;

    function EventoRepublicaController($codEvento) {
        $login = LoginController::singleton();
        if ($codEvento != NULL and is_numeric($codEvento)) {
            $der = new DAOEventoRepublica();
            $this->evento = $der->getEvento($codEvento);
            if ($login->estaConectado()) {
                $this->usuario = LoginController::singleton()->getUsuario();
                $this->republica = $this->evento->getRepublica();
                $this->republicaUsuario = $this->usuario->getRepublicaAtual();
                $this->addEstatistica();
                $this->verificaFormPresenca();
                $this->verificaFormComentario();
                $this->verificaFormDeletarComentarioEventoRepublica();
            }
            require_once 'viewEventoRepublica.php';
        }
    }

    function verificaFormDeletarComentarioEventoRepublica() {
        if (isset($_POST['formDeleteComentarioEventoRepublica'])) {
            if (is_numeric($_POST['edtComentario'])) {
                $dcer = new DaoComentarioEventoRepublica();
                $dcer->deleteComentarioById($_POST['edtComentario']);
            }
        }
    }

    function addEstatistica() {
        /*          Add contagem as Estatistica do evento           */
        $DAOEstatisticaEvento = new DAOEstatisticaEventoRepublica();
        $DAOEstatisticaEvento->addEstatisticaEventoRepublica(new Estatistica($this->evento, LoginController::singleton()->getUsuario(), 0, 0, $_SERVER["REMOTE_ADDR"]));
    }

    function verificaFormPresenca() {
        /*          Verifica se foi envido Forms de Confirmar ou desconfirmar Presença      */
        if (isset($_POST['formConfirmaPresenca'])) {
            $dc = new DAOConfirmadosEventoRepublica();
            $dc->addConfirmado(new Confirmados(LoginController::singleton()->getUsuario(), $this->evento));
        }
        if (isset($_POST['formDesconfirmaPresenca'])) {
            $dc = new DAOConfirmadosEventoRepublica();
            $dc->removeConfirmado(new Confirmados(LoginController::singleton()->getUsuario(), $this->evento));
        }
    }

    /*          Verifica se foi Enviado um Comentario           */

    function verificaFormComentario() {
        if (isset($_POST['formComentarioEventoRepublica'])) {
            $DAOComentario = new DAOComentarioEventoRepublica();
            $DAOComentario->addComentario(new Comentario(LoginController::singleton()->getUsuario(), $this->evento, $_POST['edtComentario']));
        }
    }

    function getLotesEvento(EventoRepublica $evento) {

        $lotes = $evento->getLotes($evento);
        if (empty($lotes)) {
            ?>
            <div class="alert-block alert-error">
                Nenhum Lote Cadastrado :/
            </div>
            <?
        } else {
            ?>
            <ul class="unstyled text-center">
                <?
                foreach ($lotes as $lote) {
                    ?>
                    <div class="alert-info">
                        <li>
                            <p><strong>Lote <? echo $lote->getNumero(); ?></strong><br>
                                <? //echo "Inicio: ".$lote->getDataInicio()." Fim: ".$lote->getDataFim()."<br>";      ?>
                                <? echo "Homem: " . $lote->getValorHomem() . " Mulher: " . $lote->getValorMulher(); ?>
                            </p>
                        </li>
                    </div>
                    <?
                }
                ?>
                <a class="btn btn-large btn-primary disabled">Compre Aqui</a>
            </ul>

            <?
        }
    }

    function getImagensEventoRepublica(EventoRepublica $evento) {
        ?>
        <div id="principal" class="lightbox hide fade"  tabindex="-1" role="dialog" aria-hidden="true">
            <div class='lightbox-content'>
                <img class="img-polaroid span12" style="margin: 0px;" src="/img/<? echo $evento->getImagemPrincipal()->getImagem(); ?>" alt="photo">
            </div>
        </div>
        <center><a data-toggle="lightbox" href="#principal" data-target="#principal"><img class="img-polaroid" style="margin: 0px; max-height: 300px;" src="/img/<? echo $evento->getImagemPrincipal()->getImagem() ?>" alt="photo"></a></center>

        <br>
        <?
        ?>
        <div class="row-fluid">
            <?
            $image = $evento->getImagens(4);
            $cont = 0;
            foreach ($image as $img) {
                ?>
                <div id="principal<? echo $cont; ?>" class="lightbox hide fade"  tabindex="-1" role="dialog" aria-hidden="true">
                    <div class='lightbox-content'>
                        <img class="img-polaroid span12" src="/img/<? echo $img->getImagem(); ?>" alt="photo">';
                    </div>
                </div>
                <a data-toggle="lightbox" href="#principal<? echo $cont; ?>" data-target="#principal<? echo $cont; ?>"><img class="img-polaroid span3" style="max-height: 50px; min-height: 50px;" src="/img/<? echo $img->getImagem(); ?>" alt="photo"></a>
                <?
                $cont = $cont + 1;
            }
            ?>
        </div>
        <?
    }

    function getConfirmados(EventoRepublica $evento) {

        $confirmados = $evento->getConfirmados();
        ?>
        <table class="table table-striped">
            <?
            foreach ($confirmados as $confirmado) {
                ?>
                <tr>
                    <td><img src="/img/icon-Empresa.png" style="max-height: 20px; min-height: 20px;"/></td>
                    <td style="word-wrap: break-word;"><? echo $confirmado->getUsuario()->getNome(); ?></td>
                </tr>
                <?
            }
            ?>
        </table>

        <h5><? echo count($confirmados); ?> Pessoa(s) confirmada(s)</h5>

        <?
        if (LoginController::singleton()->estaConectado()) {
            $usuario = LoginController::singleton()->getUsuario();
            if (LoginController::singleton()->getTipo() == TIPO_USUARIO) {
                if (!$evento->usuarioEstaConfirmado($usuario)) {
                    ?>
                    <form method="POST" action="">
                        <input type="hidden" name="formConfirmaPresenca" value="formConfirmaPresenca"/>
                        <button type="submit" class="btn btn-primary btn-large">Confirmar Presença</button>
                    </form>
                    <?
                } else {
                    ?>
                    <form method="POST" action="">
                        <input type="hidden" name="formDesconfirmaPresenca" value="formDesconfirmaPresenca"/>
                        <button type="submit" class="btn btn-primary btn-large">Não vou mais</button>
                    </form>
                    <?
                }
            }
        } else {
            echo "Você não está Online, Click Aqui para se Conectar e confirmar Presença.";
        }
    }

    function getNotaEventoRepublica() {
        ?>
        <div class="span4 text-center label label-success">
            <i class="icon-star"> </i><i class="icon-star"> </i><i class="icon-star"> </i><i class="icon-star"> </i><i class="icon-star"> </i>
            <h1 style="margin-top: 0px;">Nota: 10.0</h1>
        </div>
        <?
    }

    function getComentariosEventoRepublica(EventoRepublica $eventoRepublica, $limite = 0) {

        $comentarios = $eventoRepublica->getComentarios($limite);
        ?>
        <div class="span8">
            <?
            foreach ($comentarios as $comentario) {
                ?>
                <blockquote style="word-wrap: break-word;">
                    <p><? echo $comentario->getComentario(); ?></p>
                    <small><? echo $comentario->getUsuario()->getNome(); ?></small>
                    <?
                    if (LoginController::singleton()->estaConectado()) {
                        if ($this->republicaUsuario == null) {
                            if ($this->usuario->getCodigo() == $comentario->getUsuario()->getCodigo()) {
                                ?>
                                <form action = "" method = "POST">
                                    <input type = "hidden" name = "formDeleteComentarioEventoRepublica" value = "formDeleteComentarioEventoRepublica"/>
                                    <input type = "hidden" name = "edtComentario" value = "<? echo $comentario->getCodigo(); ?>"/>
                                    <right><button class="btn" name="btnSubmit" type="submit" value="delete" title="Excluir"><i class="icon-remove"></i></button></right>
                                </form>
                                <?
                            }
                        } else {
                            if ($this->republica->getCodigo() == $this->republicaUsuario->getCodigo()) {
                                ?>
                                <form action = "" method = "POST">
                                    <input type = "hidden" name = "formDeleteComentarioEventoRepublica" value = "formDeleteComentarioEventoRepublica"/>
                                    <input type = "hidden" name = "edtComentario" value = "<? echo $comentario->getCodigo(); ?>"/>
                                    <right><button class="btn" name="btnSubmit" type="submit" value="delete" title="Excluir"><i class="icon-remove"></i></button></right>
                                </form>
                                <?
                            }
                        }
                    }
                    ?>
                </blockquote>
                <?
            }
            ?>
            <?
            if (isset($_SESSION['Usuario'])) {
                ?>
                <form method="POST" action="">
                    <input type="hidden" name="formComentarioEventoRepublica" id="formComentarioEventoRepublica"/>
                    <textarea class="span12" name="edtComentario" id="edtComentario" placeholder="Diga o que você acha desta republica..."></textarea>
                    <button type="submit" class="btn">Enviar Comentario</button>
                </form>
                <?
            }
            ?>
        </div>
        <?
    }

    function getTodosComentarios() {
        ?>
        <div class="span12" style="padding: 0px; margin: 0px;">
            <center>
                <a href="#modalComentario" role="button" class="btn" data-toggle="modal">Ver Todos os Comentarios</a>
            </center>
            <div id="modalComentario" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                    <h3 id="myModalLabel">Comentarios</h3>
                </div>
                <div class="modal-body well">
                    <? $this->getComentariosEventoRepublica($this->getEvento()); ?>
                </div>
                <div class="modal-footer">
                    <button class="btn" data-dismiss="modal" aria-hidden="true">Fechar</button>
                </div>

            </div>
        </div>
        <?
    }

    public function getEvento() {
        return $this->evento;
    }

}
?>
